package utils

import (
	"fmt"
	"os"
)

// saveFile 将文件二进制数据保存到指定路径，防止文件覆盖
func SaveFile(fileBinary []byte, filePath string) error {
	// 检查文件是否已经存在
	if _, err := os.Stat(filePath); err == nil {
		return fmt.Errorf("file already exists: %s", filePath)
	} else if !os.IsNotExist(err) {
		return err
	}

	// 创建或截断文件
	file, err := os.Create(filePath)
	if err != nil {
		return err
	}
	defer file.Close()

	// 将二进制数据写入文件
	_, err = file.Write(fileBinary)
	if err != nil {
		return err
	}

	return nil
}
